export const ContentTypeEnum = {
  // json
  JSON: 'application/json;charset=UTF-8',
  // form-data qs
  FORM_URLENCODED: 'application/x-www-form-urlencoded;charset=UTF-8',
  // form-data  upload
  FORM_DATA: 'multipart/form-data;charset=UTF-8'
}

export const ConfigEnum = {
  TOKEN: 'X-Access-Toekn',
  TIMESTAMP: 'X-TIMESTAMP'
}

export const BASE_URL = import.meta.env.VITE_BASE_API

export const defaultOptions = {
  timeout: 9999999999,
  // 请求类型
  method: 'GET',
  baseURL: BASE_URL,
  // contentType 支持值为config.js 中的ContentTypeEnum
  contentType: 'JSON',
  // 相应类型
  responseType: 'JSON',
  // 忽略重复请求
  ignoreCancelToken: true,
  // 是否携带token
  withToken: true,
  // 错误消息提示类型
  errorMessageMode: 'none', // none 不提示 // message 信息提示
  // 接口地址
  apiUrl: '',
  // 其他请求头
  otherHeader: null,
  // 是否返回原生响应头 比如：需要获取响应头时使用该属性
  isReturnNativeResponse: false,
  //  是否加入时间戳
  joinTime: false,
  // post请求的时候添加参数到url
  joinParamsToUrl: false,
  //成功消息提示
  SuccessMessageMode: 'none', // none 不提示 // message 信息提示

  handleParamsCallback: (params) => {
    return params
  }
}

export const checkStatus = (status, msg) => {
  let errMessage = ''
  switch (status) {
    case 400:
      errMessage = `${msg}`
      break
    case 401:
      errMessage = msg || '用户没有权限（令牌、用户名、密码错误）!'
      break
    case 403:
      errMessage = '用户得到授权，但是访问是被禁止的!'
      break
    case 404:
      errMessage = '网络请求错误,未找到该资源!'
      break
    case 405:
      errMessage = '网络请求错误,请求方法未允许!'
      break
    case 408:
      errMessage = '网络请求超时!'
      break
    case 500:
      errMessage = '服务器错误,请联系管理员!'
      break
    case 501:
      errMessage = '网络未实现!'
      break
    case 502:
      errMessage = '网络错误!'
      break
    case 503:
      errMessage = '服务不可用，服务器暂时过载或维护!'
      break
    case 504:
      errMessage = '网络超时!'
      break
    case 505:
      errMessage = 'http版本不支持该请求!'
      break
    default:
  }

  return errMessage
}

export const successCode = [200, 0]
